from dataclasses import dataclass, field
from typing import Dict


@dataclass
class ArtClassifierConstants:
    """Class with constants for classifier inference"""

    model_weights_path: str = "./weights/resnet50_tl_68.pt"
    image_size: int = 224
    id2label: Dict[int, str] = field(
        default_factory=lambda: {
            0: "Скульптура/Исторический",
            1: "ДПИ/Изделия из керамики",
            2: "Живопись/Исторический",
            3: "Скульптура/Портрет",
            4: "Живопись/Батальный",
            5: "Графика/Натюрморт",
            6: "ДПИ/Роспись",
            7: "Архитектура/Барокко",
            8: "Графика/Прикладная графика",
            9: "Архитектура/Классицизм",
            10: "Живопись/Натюрморт",
            11: "Живопись/Другое",
            12: "ДПИ/Другое",
            13: "Архитектура/Советская архитектура",
            14: "Живопись/Мифологический (сказочный)",
            15: "Графика/Пейзаж",
            16: "ДПИ/Ткачество ",
            17: "Архитектура/Авангард и модерн",
            18: "Архитектура/Древнерусская архитектура",
            19: "Графика/Другое",
            20: "Скульптура/Анималистический",
            21: "Живопись/Анималистический",
            22: "Живопись/Бытовой",
            23: "Живопись/Авангард",
            24: "Графика/Плакат",
            25: "ДПИ/Изделия из дерева",
            26: "Архитектура/Другое (арх-ра)",
            27: "Живопись/Пейзаж",
            28: "Архитектура/Историзм",
            29: "Скульптура/Другое",
            30: "ДПИ/Мозаика ",
            31: "Живопись/Портрет",
            32: "Графика/Портрет",
            33: "Живопись/Религиозная живопись",
            34: "Графика/Книжная графика",
        }
    )
